home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 95 / Amiga News 95.iso / dpat / dpat01 / scroll / scroll.asm < prev    next >
Encoding:
Assembly Source File  |  1992-07-21  |  3.6 KB  |  152 lines

  1. ;****
  2. ;****  Multi Scrolling par Xavier Leclercq Pour A-NEWS 
  3. ;****  
  4.  
  5. Place =$7f4d0
  6. Pointeur=$100
  7.  
  8. Main:
  9.    move.l $4,a6
  10.    move.w  #$0020,$dff096    ;Mouse OFF
  11.    move.l  #Place,a1    ;Il faut placer le prg en Chip!
  12.    lea Main(pc),a0        ;Début du PRG
  13.    move.l #Finprg-Main,d0        
  14.  
  15. Copie:
  16.    move.b (a0)+,(a1)+
  17.    dbf d0,Copie
  18.  
  19.    jmp Place+GO-Main    ;Saut au programme proprement dit...
  20.  
  21. Go:
  22.    move.l    $04,a6
  23.    move.l    (a6),a6 ;--->>> POUR ICI VOIR BIDOUILLES!!!
  24.    move.l    (a6),a6    ;GfxBase en a6...
  25.  
  26.    move.l    50(a6),Place+oldclist-Main
  27.    move.l    #Place+newclist-Main,50(a6)
  28.    lea    bitmap(pc),a0
  29.    move.l    #$01,d0        ;Un BitPlan=2 Couleurs
  30.    move.l    #336,d1        ;Largeur 336 Pixels    
  31.    move.l    #200,d2        ;Hauteur 200 Pixels    
  32.    jsr    -390(a6)    ;InitBitPlan
  33.    
  34.    move.l    #$60000,Place+plane1-Main
  35.    lea    rastport(pc),a1
  36.    jsr    -198(a6)    ;InitRastport
  37.    move.l    #Place+bitmap-Main,Place+r_bitmap-Main
  38.  
  39.    lea TopazFont(pc),a0
  40.    jsr -$48(a6)    ;OpenFont
  41.    move.l d0,a0
  42.    lea RastPort(pc),a1
  43.    jsr -$42(a6)    ;SetFont
  44.  
  45.    jsr    -48(a6)    
  46.    move.l    #Place+Message-Main,Pointeur
  47.    move.l    $6c,Place+oldirq+2-Main
  48.    move.l    #Place+newirq-Main,$6c
  49.  
  50. wait:
  51.    btst    #6,$bfe001
  52.    bne.s    wait
  53.  
  54.    move.w  #$8020,$dff096    ;Mouse ON
  55.    move.l    Place+oldirq+2-Main,$6c
  56.    move.l    Place+oldclist-Main,50(a6)
  57.  
  58.    moveq #0,d0        ;Pas d'erreur pour le CLI...
  59.    rts            ;Retour au CLI
  60.    
  61.  
  62. newirq:
  63.    movem.l    d0-d7/a0-a6,-(sp)
  64.    move.l    $4,a6
  65.    move.l (a6),a6 ;---->>> VOIR ARTICLE BIDOUILLES     
  66.    move.l (a6),a6 ;GfxBase en a6
  67.  
  68.    lea    rastport(pc),a1
  69.    move.l    #$02,d0        ;Vitesse...
  70.    moveq   #$0,d1    
  71.    clr.l    d2    
  72.    move.l    #0,d3    
  73.    move.l    #336,d4        
  74.    move.l    #336,d5    
  75.    jsr    -396(a6)    ;Scroll Rastport :Tout l'écran!!
  76.    sub.b    #$01,Place+rows-Main
  77.    bne.s    Sort
  78.    move.b    #$04,Place+rows-Main  ;Espace entre chaque Lettre
  79. ;doit etre en fonction de la vitesse!
  80.    subi.l d5,d5
  81.  
  82. BoucleImprime:
  83.    addi.l #32,d5    ;Position Horizontale +32    
  84.    bsr.s Imprime
  85.    cmpi.l #32*6,d5 ;déjà six scrollings??
  86.    bmi.s BoucleImprime ;Non BoucleImprime
  87.  
  88.    addq.l    #$01,Pointeur        ;Pointeur de texte+1
  89.    cmp.l    #Place+MessageFin-Main,Pointeur
  90.    blt.s    Sort
  91.    move.l    #Place+Message-Main,Pointeur    ;Et on recommence...
  92.  
  93. Sort:
  94.    movem.l    (sp)+,d0-d7/a0-a6
  95.    oldirq:
  96.    jmp    $00000000
  97.  
  98. Imprime:
  99.    lea    rastport(pc),a1
  100.    move.l  #1,d0
  101.    jsr -342(a6)    ;SetApen => 1 Couleur=Blanc
  102.    move.l    #324,d0    ;Position X =324    
  103.    move.l    d5,d1    ;Position Y =Multiple de 32(Voir plus Haut!)
  104.    jsr    -240(a6) ;Move
  105.    lea    rastport(pc),a1
  106.    move.l    Pointeur,a0    ;Pointeur de Texte
  107.    move.l    #$01,d0        ;Imprime 1 Caractère
  108.    jsr    -60(a6)    ;Text
  109.    rts
  110.  
  111. Message:
  112. dc.b "Deux tomates traversent une rue et l'une d'entre-elles est "
  113. dc.b "écrasée...(snif!!).L'autre lui crie <Tu viens Jus-Jus?..> "
  114. dc.b "                  "
  115. dc.b "Quelle est la marque de voiture employée par les Ethiopiens? "
  116. dc.b "REP:Une OSmobile... "
  117. dc.b "                  "
  118. dc.b "Une famille de nègres traversent une rivière magique pour se "
  119. dc.b "retrouver de l'autre coté Blanc.Tout le monde passe sauf le "
  120. dc.b "petit dernier qui meurt noyé.La mère pleure.Le père répond: "
  121. dc.b "<Allons mamman tu ne vas pas pleurer pour un pauv' nègre>..."
  122. dc.b "                  "
  123. MessageFin:
  124. even
  125.  
  126. DosName: dc.b "dos.library",0
  127.  
  128. Newclist:
  129. dc.w    $0100,$1200,$0102,$0000    
  130. dc.w    $00e0,$0006,$00e2,$0000
  131. dc.w    $008e,$2c11,$0090,$00c0  
  132. dc.w    $0092,$0038,$0094,$00d8
  133. dc.w    $0182,$0fff    ;texte =Blanc
  134. dc.w    $0180,$00a0    ;Fond  =Vert
  135. dc.w    $ffff,$fffe    ;Fin Copper List
  136. even
  137.  
  138. TopazFont: dc.l Topaz    ;Topaz en ROM de taille 9
  139. dc.b 0,9,0,0
  140. Topaz: dc.b "topaz.font",0
  141. even
  142.  
  143. oldclist: dc.l 0
  144. bitmap:   blk.w 4,0
  145. plane1:   dc.l 0
  146. rastport: dc.l 0
  147. r_bitmap:
  148. blk.l    19,0
  149. rows: dc.b 2
  150. even
  151. FinPrg:
  152.